var _n35;
var cc__extends = __extends;
var cc__decorate = __decorate;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var cc__decorator = cc._decorator;
var ccp_ccclass = cc__decorator.ccclass;
var ccp_property = cc__decorator.property;
var def_Rope = function (t) {
  function _ctor() {
    // 使用 apply 方法调用 t，或者使用当前上下文
    var instance = null !== t && t.apply(this, arguments) || this;

    // 初始化实例属性
    instance.type = 0; // 类型
    instance._isTouchEnabled = true; // 是否启用触摸
    instance.isLocked = false; // 是否锁定
    instance.isMoving = false; // 是否正在移动
    instance.spriteFrames = []; // 精灵帧数组
    instance.sprite = null; // 当前精灵

    return instance; // 返回实例
  }
  cc__extends(_ctor, t);
  Object.defineProperty(_ctor.prototype, "isTouchEnabled", {
    get() {
      return this._isTouchEnabled;
    },
    set(t) {
      this._isTouchEnabled = t;
    },
    enumerable: false,
    configurable: true
  });
  _ctor.prototype.onLoad = function () {
    // 启用触摸
    this.isTouchEnabled = true;

    // 设置当前精灵的透明度为 0
    this.sprite.opacity = 0;

    // 创建一个序列动作，先延迟 0.45 秒，再进行 0.25 秒的淡入效果
    var fadeInAction = cc.sequence(cc.delayTime(0.45), cc.fadeIn(0.25));

    // 运行淡入动作
    this.sprite.runAction(fadeInAction);
  };
  _ctor.prototype.setLock = function (t) {
    this.isLocked = t;
    this.node.opacity = t ? 0 : 255;
  };
  _ctor.prototype.removeFromBoard = function () {
    this.isTouchEnabled = false;
    this.sprite.removeComponent(cc.RigidBody);
    this.node.opacity = 255;
    this.sprite.angle = 0;
  };
  _ctor.prototype.setType = function (t) {
    this.type = t;
    this.sprite.getComponent(cc.Sprite).spriteFrame = this.spriteFrames[t];
    this.sprite.angle = -this.node.parent.parent.angle;
    this.isMoving = false;
  };
  _ctor.prototype.moveStart = function (t) {
    // 设置精灵的初始角度
    this.sprite.angle = 0;

    // 创建并运行同时进行的动画
    cc.tween(this.sprite)
      .parallel(
        // 为角度设置一个序列动作
        cc.tween().sequence(
          cc.tween().by(0.05, { angle: -20 }), // 角度减少 20°
          cc.tween().by(0.05, { angle: 40 }),  // 角度增加 40°
          cc.tween().by(0.05, { angle: -20 })   // 角度再次减少 20°
        ).repeat(2), // 重复执行两次

        // 同时将精灵缩放到 0
        cc.tween().to(0.3, { scale: 0 })
      )
      .call(t) // 动画结束后调用回调函数
      .start(); // 启动动画
  };
  _ctor.prototype.shake = function () {
    // 获取父节点的角度，并取反
    var inverseAngle = -this.node.parent.parent.angle;

    // 创建旋转动作
    var rotateLeft = cc.rotateBy(0.05, -10);  // 向左旋转 10°
    var rotateRight = cc.rotateBy(0.05, 20);  // 向右旋转 20°
    var rotateToOriginal = cc.rotateTo(0.05, -inverseAngle); // 旋转到原始角度

    // 创建一个序列动作
    var rotationSequence = cc.sequence(rotateLeft, rotateRight, rotateToOriginal);

    // 执行动画
    this.sprite.runAction(rotationSequence);
  };
  _ctor.prototype.onTouchEnd = function () { };
  cc__decorate([ccp_property([cc.SpriteFrame])], _ctor.prototype, "spriteFrames", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "sprite", undefined);
  return cc__decorate([ccp_ccclass], _ctor);
}(cc.Component);
exports.default = def_Rope;